package gestion.horarios.model.jpa.entities;

import java.io.Serializable;
import javax.persistence.*;
import java.util.Date;
import java.util.List;


/**
 * The persistent class for the cicloacademico database table.
 * 
 */
@Entity
@Table(name="cicloacademico")
public class CicloAcademico implements Serializable {
	private static final long serialVersionUID = 1L;
	private int cicloAcademicoId;
	private String estado;
	private Date fechaFin;
	private Date fechaInicio;
	private String semestre;
	private List<CarrerasSede> carrerassedes;
	private List<DisponibilidadDocente> disponibilidaddocentes;
	private List<DisponibilidadEspacioLectivo> disponibilidadespaciolectivos;
	private List<Escenario> escenarios;
	private List<Proyeccion> proyeccions;
	private List<RatiosProyeccion> ratiosproyeccions;
	private List<VigenciaPlanCurricular> vigenciaplancurriculars;

    public CicloAcademico() {
    }


	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(unique=true, nullable=false)
	public int getCicloAcademicoId() {
		return this.cicloAcademicoId;
	}

	public void setCicloAcademicoId(int cicloAcademicoId) {
		this.cicloAcademicoId = cicloAcademicoId;
	}


	@Column(length=45)
	public String getEstado() {
		return this.estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}


    @Temporal( TemporalType.TIMESTAMP)
	public Date getFechaFin() {
		return this.fechaFin;
	}

	public void setFechaFin(Date fechaFin) {
		this.fechaFin = fechaFin;
	}


    @Temporal( TemporalType.TIMESTAMP)
	public Date getFechaInicio() {
		return this.fechaInicio;
	}

	public void setFechaInicio(Date fechaInicio) {
		this.fechaInicio = fechaInicio;
	}


	@Column(nullable=false, length=45)
	public String getSemestre() {
		return this.semestre;
	}

	public void setSemestre(String semestre) {
		this.semestre = semestre;
	}


	//bi-directional many-to-one association to CarrerasSede
	@OneToMany(mappedBy="cicloacademico")
	public List<CarrerasSede> getCarrerassedes() {
		return this.carrerassedes;
	}

	public void setCarrerassedes(List<CarrerasSede> carrerassedes) {
		this.carrerassedes = carrerassedes;
	}
	

	//bi-directional many-to-one association to DisponibilidadDocente
	@OneToMany(mappedBy="cicloacademico")
	public List<DisponibilidadDocente> getDisponibilidaddocentes() {
		return this.disponibilidaddocentes;
	}

	public void setDisponibilidaddocentes(List<DisponibilidadDocente> disponibilidaddocentes) {
		this.disponibilidaddocentes = disponibilidaddocentes;
	}
	

	//bi-directional many-to-one association to DisponibilidadEspacioLectivo
	@OneToMany(mappedBy="cicloacademico")
	public List<DisponibilidadEspacioLectivo> getDisponibilidadespaciolectivos() {
		return this.disponibilidadespaciolectivos;
	}

	public void setDisponibilidadespaciolectivos(List<DisponibilidadEspacioLectivo> disponibilidadespaciolectivos) {
		this.disponibilidadespaciolectivos = disponibilidadespaciolectivos;
	}
	

	//bi-directional many-to-one association to Escenario
	@OneToMany(mappedBy="cicloacademico")
	public List<Escenario> getEscenarios() {
		return this.escenarios;
	}

	public void setEscenarios(List<Escenario> escenarios) {
		this.escenarios = escenarios;
	}
	

	//bi-directional many-to-one association to Proyeccion
	@OneToMany(mappedBy="cicloacademico")
	public List<Proyeccion> getProyeccions() {
		return this.proyeccions;
	}

	public void setProyeccions(List<Proyeccion> proyeccions) {
		this.proyeccions = proyeccions;
	}
	

	//bi-directional many-to-one association to RatiosProyeccion
	@OneToMany(mappedBy="cicloacademico")
	public List<RatiosProyeccion> getRatiosproyeccions() {
		return this.ratiosproyeccions;
	}

	public void setRatiosproyeccions(List<RatiosProyeccion> ratiosproyeccions) {
		this.ratiosproyeccions = ratiosproyeccions;
	}
	

	//bi-directional many-to-one association to VigenciaPlanCurricular
	@OneToMany(mappedBy="cicloacademico")
	public List<VigenciaPlanCurricular> getVigenciaplancurriculars() {
		return this.vigenciaplancurriculars;
	}

	public void setVigenciaplancurriculars(List<VigenciaPlanCurricular> vigenciaplancurriculars) {
		this.vigenciaplancurriculars = vigenciaplancurriculars;
	}
	
}